/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.upc.sistemaventas.web;

import edu.upc.sistemaventas.negocio.EmprendedorLogicaNegocio;
import edu.upc.sistemaventas.dominio.EmprendedorDomain;
import edu.upc.sistemaventas.dominio.PlanNegocioDomain;
import edu.upc.sistemaventas.dominio.SabioDomain;
import edu.upc.sistemaventas.dominio.TipoDocumentoDomain;
import edu.upc.sistemaventas.negocio.SabioLogicaNegocio;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;


/**
 *
 * @author jdev5
 */
@Controller
public class EmprendedorController {
    

    @RequestMapping(value = "/emprendedor_nuevo", method = RequestMethod.GET)	
	protected ModelAndView inicio(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		
		return new ModelAndView("emprendedor_nuevo");
	}

        @RequestMapping(value = "/emprendedor_nuevoAdmin", method = RequestMethod.GET)	
	protected ModelAndView emprendedor_nuevoAdmin(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		
		return new ModelAndView("emprendedor_nuevoAdmin");
	}
        
    @RequestMapping(value = "/grabarEmprendedor", method = {RequestMethod.GET, RequestMethod.POST})
	protected ModelAndView grabar(HttpServletRequest request, HttpServletResponse response) throws Exception {
		//EmprendedorDomain notMNoti = (EmprendedorDomain)command;
                EmprendedorLogicaNegocio negocio = new EmprendedorLogicaNegocio();
                              
                               ////
                EmprendedorDomain notMNoti2 = new EmprendedorDomain();
                
                notMNoti2.setNombres(request.getParameter("usuario").toString());
                notMNoti2.setApellidoPaterno(request.getParameter("paterno").toString());
                notMNoti2.setApellidoMaterno(request.getParameter("materno").toString());
                notMNoti2.setSexo(request.getParameter("sexo").toString());
                notMNoti2.setTipoDocumentoIdentidad(request.getParameter("tipodocumento").toString());
                notMNoti2.setNumeroDocumentoIdentidad(request.getParameter("numerodocumento").toString());
                notMNoti2.setCorreo(request.getParameter("correo").toString());
                notMNoti2.setCelular(request.getParameter("celular").toString());
                notMNoti2.setDireccion(request.getParameter("direccion").toString());
                //notMNoti2.setFechaNacimiento(request.getAttribute("fechanacimiento"));

                SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
                Date fecha;
                fecha = df.parse(request.getParameter("fechanacimiento").toString());
                
                notMNoti2.setFechaNacimiento(fecha);
                
                notMNoti2.setClave(request.getParameter("contrasenia").toString());
                //notMNoti2.set(request.getAttribute("apelativo").toString());
                //notMNoti2.set(request.getAttribute("resumen").toString());
                //notMNoti2.setDireccion(request.get    Attribute("sitioweb").toString());
                                
                try {
                    negocio.registrarEmprendedor(notMNoti2);
                    System.out.println("en el try");
		} catch (Exception e) {
                    System.out.println("en la excepcion" + e.getMessage());
			//return new ModelAndView("/error", "mensaje", e.getMessage());
                        request.setAttribute("mensaje", e.getMessage());
                        //return new ModelAndView("redirect:emprendedor_nuevo.html");
                        return new ModelAndView("emprendedor_nuevo");
		}
                //negocio.reg
		return new ModelAndView("grabarEmprendedor");
	}

        @RequestMapping(value = "/grabarEmprendedorAdmin", method = {RequestMethod.GET, RequestMethod.POST})
	protected ModelAndView grabarEmprendedorAdmin(HttpServletRequest request, HttpServletResponse response) throws Exception {
		//EmprendedorDomain notMNoti = (EmprendedorDomain)command;
                EmprendedorLogicaNegocio negocio = new EmprendedorLogicaNegocio();
                              
                               ////
                EmprendedorDomain notMNoti2 = new EmprendedorDomain();
                
                notMNoti2.setNombres(request.getParameter("usuario").toString());
                notMNoti2.setApellidoPaterno(request.getParameter("paterno").toString());
                notMNoti2.setApellidoMaterno(request.getParameter("materno").toString());
                notMNoti2.setSexo(request.getParameter("sexo").toString());
                notMNoti2.setTipoDocumentoIdentidad(request.getParameter("tipodocumento").toString());
                notMNoti2.setNumeroDocumentoIdentidad(request.getParameter("numerodocumento").toString());
                notMNoti2.setCorreo(request.getParameter("correo").toString());
                notMNoti2.setCelular(request.getParameter("celular").toString());
                notMNoti2.setDireccion(request.getParameter("direccion").toString());
                //notMNoti2.setFechaNacimiento(request.getAttribute("fechanacimiento"));

                SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
                Date fecha;
                fecha = df.parse(request.getParameter("fechanacimiento").toString());
                
                notMNoti2.setFechaNacimiento(fecha);
                
                notMNoti2.setClave(request.getParameter("contrasenia").toString());
                //notMNoti2.set(request.getAttribute("apelativo").toString());
                //notMNoti2.set(request.getAttribute("resumen").toString());
                //notMNoti2.setDireccion(request.get    Attribute("sitioweb").toString());
                                
                try {
                    negocio.registrarEmprendedor(notMNoti2);
                    System.out.println("en el try");
		} catch (Exception e) {
                    System.out.println("en la excepcion" + e.getMessage());
			//return new ModelAndView("/error", "mensaje", e.getMessage());
                        request.setAttribute("mensaje", e.getMessage());
                        //return new ModelAndView("redirect:emprendedor_nuevo.html");
                        return new ModelAndView("emprendedor_nuevoAdmin");
		}
                //negocio.reg
		//return new ModelAndView("grabarEmprendedorAdmin");
                return new ModelAndView("redirect:MantEmprendedor.html");
	}

        @RequestMapping(value = "/MantEmprendedor", method = RequestMethod.GET)
	protected ModelAndView MantEmprendedor(HttpServletRequest request,
			HttpServletResponse response) throws Exception {

		//Collection<Categoria> lista = null;
		//lista = categoriaService.listarCategorias();
                System.out.println("Correo ingresado...");
                System.out.println(request.getParameter("txtCorreo"));
                String nombre = null;
                
                if (request.getParameter("txtCorreo") != null)
                {
                    nombre = request.getParameter("txtCorreo").toString();
                }
                else
                {
                    nombre = "";
                }
                
                EmprendedorLogicaNegocio negocio = new EmprendedorLogicaNegocio();
                //CategoriaDomain domain =  new CategoriaDomain();
            
                List<EmprendedorDomain> domains = null;
                domains= negocio.listarEmprendedores(nombre);
                //domains = negocio.buscarCategoriasPorPadre(2);
		return new ModelAndView("MantEmprendedor", "EMPRENDEDORES", domains);
	}

        @RequestMapping(value = "/emprendedor_editar", method = RequestMethod.GET)
	protected ModelAndView emprendedor_editar(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
        
        ModelAndView modelAndView = new ModelAndView("emprendedor_editar");
        
		EmprendedorDomain cat = new EmprendedorDomain();
                EmprendedorLogicaNegocio negocio = new EmprendedorLogicaNegocio();
                
		cat = negocio.buscarEmprendedor(Integer.parseInt(request.getParameter("id")));
		
		System.out.println("idEmprendedor "+request.getParameter("id"));
                //tipo de documento
                TipoDocumentoDomain td = new TipoDocumentoDomain();
                TipoDocumentoDomain td2 = new TipoDocumentoDomain();
                TipoDocumentoDomain td3 = new TipoDocumentoDomain();
                List<TipoDocumentoDomain> lista = null;
                lista = new ArrayList<TipoDocumentoDomain>();
                
                td.setId(1);
                td.setNombre("DNI");
                lista.add(td);
                
                td2.setId(2);
                td2.setNombre("Carnet Extranjería");
                lista.add(td2);
                
                td3.setId(3);
                td3.setNombre("Pasaporte");
                lista.add(td3);
                
                modelAndView.addObject("EMPRENDEDORES", cat);
                modelAndView.addObject("TIPOS", lista);
                
                return modelAndView;
		//return new ModelAndView("emprendedor_editar", "EMPRENDEDORES", cat);
	}

        @RequestMapping(value = "/guardarModificacionEmprendedor", method = RequestMethod.POST)
	protected ModelAndView modificarEmprendedor(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		System.out.println("guardarModificacionEmprendedor");
		
		EmprendedorDomain cat = new EmprendedorDomain();
                EmprendedorLogicaNegocio negocio = new EmprendedorLogicaNegocio();
                
		cat.setId(Integer.parseInt(request.getParameter("id")));
		cat.setApellidoPaterno(request.getParameter("txtApPaterno"));
		cat.setApellidoMaterno(request.getParameter("txtApMaterno"));
                
                cat.setNombres(request.getParameter("txtNombres"));
                cat.setSexo(request.getParameter("txtSexo"));
                cat.setTipoDocumentoIdentidad(request.getParameter("txtTipoDoc"));
                
                System.out.println("numero de documento");
                System.out.println(request.getParameter("txtNumeroDoc"));
                
                cat.setNumeroDocumentoIdentidad(request.getParameter("txtNumeroDoc"));
                cat.setCorreo(request.getParameter("txtCorreo"));
                
                cat.setCelular(request.getParameter("txtCelular"));
                cat.setDireccion(request.getParameter("txtDireccion"));
                
                SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
                Date fecha;
                fecha = df.parse(request.getParameter("txtFecNac").toString());
                
                cat.setFechaNacimiento(fecha);
                cat.setClave(request.getParameter("txtClave"));
                //cat.setApelativo(request.getParameter("txtApelativo"));
                //cat.setResumenAutobiografico(request.getParameter("txtResumen"));
                //cat.setSitioWeb(request.getParameter("txtSitioWeb"));
                //cat.setApellidoMaterno(request.getParameter("txtDescripcion"));
		
		try {
                    negocio.actualizarEmprendedor(cat);
		} catch (Exception e) {
			return new ModelAndView("/error", "mensaje", e.getMessage());
		}
                //return new ModelAndView("emprendedor_editar", "EMPRENDEDORES",  cat);
		return new ModelAndView("redirect:MantEmprendedor.html");
                ///return new ModelAndView
	}

	@RequestMapping(value = "/emprendedor_eliminar", method = RequestMethod.GET)
	protected ModelAndView eliminarEmprendedor(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		System.out.println("emprendedor_eliminar");
		
		EmprendedorDomain cat = new EmprendedorDomain();
                EmprendedorLogicaNegocio negocio = new EmprendedorLogicaNegocio();
                
		//cat.setId(Integer.parseInt(request.getParameter("id")));
		//cat.setNombreCategoria(request.getParameter("txtNombre"));
		//cat.setDescripcion(request.getParameter("txtDescripcion"));
		
		try {
			negocio.eliminarEmprendedor(Integer.parseInt(request.getParameter("id")));
                        
		} catch (Exception e) {
			return new ModelAndView("/error", "mensaje", e.getMessage());
		}

		return new ModelAndView("redirect:MantEmprendedor.html");
	}        
}
